package zdyu.users;

public interface Requirements {

    /**
     * 执行操作后的状态
     */
    public enum Status {
        ok, userAlreadyExists, authenticationFailure, systemError
    }

    /**
     * 注册账号
     * @param username      用户名
     * @param passphrase    密码
     * @return              状态: OK, 用户已存在, 系统错误
     */
    Status register(String username, String passphrase);

    /**
     * 登录
     * @param username      用户名
     * @param passphrase    密码
     * @return              状态: OK, 认证失败, 系统错误
     */
    Status login(String username, String passphrase);

    /**
     * 修改密码
     * @param username      用户名
     * @param oldPassphrase    密码
     * @param newPassphrase
     * @return              状态: OK, 认证失败, 系统错误
     */
    Status changePassphrase(String username, String oldPassphrase, String newPassphrase);

}
